The invention relates generally to computer systems and more particularly to the computer""s graphical user interface (GUI) arid improved user interaction with the computer system.
Computers, such as personal computers (PCs), e.g. systems utilizing DOS, Windows, or Windows NT by IBM or the Macintosh by Apple, and workstations, have become commonplace tools for a variety of users. As a group, these computers can be referred to as xe2x80x9cdesktopxe2x80x9d computers. Desktop computers are now used routinely in a wide variety of environments: schools, laboratories, businesses, government agencies, homes, etc. The ever-increasing reliance on computers has lead to increased standardization of the GUI and means of interacting with the GUI. For example, windows, toolbars, menus, and icons are implemented on a wide variety of platforms and have come to be expected components of a desktop computer""s GUI. As a result, in some instances, for often used devices, users have become so proficient that they can often utilize common visual devices efficiently based primarily on memory of location of icons on the screen or on the location of menu items within a menu.
While computer users have become more skilled, so too have computers and computer applications become more advanced. Computers, and operators, have reached the point where a user may have multiple windows open with applications running and processing commands in any number of these open windows, called multi-tasking. Also, applications have become increasingly feature rich, and often provide an increasing amount of visual devices as the application versions progress. Together, these forces have led to increased contention for space on the computer screen or GUI, creating xe2x80x9cscreen-clutterxe2x80x9d and an often cumbersome GUI work environment.
Another factor at work in desktop computer systems is the rapid and wide-scale migration to object oriented design (OOD) applications, rather than structured programming applications. In OOD, objects can be used to represent most any entity, with various aspects of the entity being represented as modifiable properties and entity behaviors being represented as methods. This change manifests itself not only in the actual creation of programs, but also in the way in which users control, create, modify, and otherwise interact with application entities or objects visually within the GUI. Modifying a property of an object often entails the changing of a value associated with the object""s properties. For example, if a user had a calendar represented as an object, the calendar object could have a property to represent the days of the month and the values associated with the property for days could be the numerical values of 1-28 for February. Therefore, changing the property value could be accomplished in a variety of ways, such as selecting a number from a menu list, scrolling through a number list, or by selecting the number from a visual representation of the calendar object. With increased focus on object oriented applications and tools, it is increasingly important to allow users to efficiently choose properties and modify property values within the increasingly cluttered GUI.
A typical desktop computer is depicted in FIG. 1. Devices which allow a user to interact with the computer""s GUI are called input devices and include a keyboard, mouse, trackball, light pen, or other such devices. As mentioned, the typical GUI for a desktop computer utilizes a window-based approach. Such a system usually includes a plethora of menus, toolbars, icons, palettes, and other visual devices used to control the operation of the computer and properties of various entities or objects. Wherein, xe2x80x9cpull-down menusxe2x80x9d are often used as a means for performing operations or changing object properties relative to an xe2x80x9cactivexe2x80x9d window, which displays an interface to a given application, e.g. a web browser, or an application file, e.g. word processing document or spreadsheet. The active window is the window in direct control by the user at a particular instance in time, although other windows may be processing information under multi-tasking. For example, if a user had a word processing document open, a set of menus would be available to the user, indicated by menu titles running, usually, across the top of the window. Placing the computer""s cursor over a menu title and selecting the menu, usually done by depressing a mouse button, reveals a vertical list, or linear menu, of operations, e.g. for opening, closing, and saving the document, or for editing properties, e.g. bold, italics, or underline for text formatting, available to the user. Many current""systems also allow a nesting of menus, such that selecting an item from the menu list reveals another linear menu of available operations. Ultimately, a user can select an operation to be performed from one of these nested linear menus. The problem with these menus is that they inherently cause significant obstruction of the underlying window when used, as shown in FIG. 2.
While vertical linear pull-down menus tied to a window frame are by far the most common type of menu employed, other types of menus have also been used. For example, tear-off menus, typically vertical linear menus, differ from pull-down menus in that they are not rigidly tied to the window frame itself. Tear-off menus may first appear tied to the window frame, but can be moved or xe2x80x9cdraggedxe2x80x9d by the user anywhere on the display. Another type of linear menu, the pop-up menu, presents a user with a menu which is not tied to the window frame itself, but usually appears in the position where the cursor was when the menu was requested by some operator action or in a predefined location, such as the center of the window. Like the tear-off menu, the pop-up menu can be repositioned on the screen.
Other types of menus depart from the linear approach in favor of a circular approach. The pie menu is a circular menu, which is divided by a series of radii forming pie segments. It is customary for each pie segment to contain one menu choice. Some pie menus show only a subset of available menu choices and allow a user to scroll through the choices, referred to as scrolling pie menus. A fan menu, which is not common, is half of a pie menu. Circular menus can also be in the form of xe2x80x9cringsxe2x80x9d, where a ring is related to a particular menu choice. Usually these circular types of menus are not tied to a window frame and can be moved by the operator about the display. The primary challenge with circular menus is that the menu item names can get cluttered or even overlap, cause the circle to be large to accommodate menu item names, or menu item names can be oriented radially making some of the item names difficult to read. The benefit of pie menus is that they are considered to offer better user accuracy and speed than their linear menu counterparts.
Some menus are hybrids of the linear and circular types. For example, U.S. Pat. No. 5,596,699 (""699) to Driskell discloses two linear menus side-by-side with a circular menu region incorporated in the center of the combined linear menus. The circular region, however, does not represent a plurality of menu items, but is either non-functional or has only one function. This type of menu attempts to offer some of the increased speed and accuracy of pie menus without the problems related to pie menu item names, because the names are all horizontal within the linear menus. However, as disclosed, this combination is relatively wide and, therefore, is more likely to obscure the underlying document or window.
Yet another type of menu allows an operator to not only select an operation but also supply the value from a range of values for a parameter associated with that operation. These are called xe2x80x9cvaluator menusxe2x80x9d. U.S. Pat. No. 4,896,291 to Gest, et al. discloses such a menu, where the menus are either vertical or horizontal linear menus and the parameter value is determined by the horizontal movement of the cursor within the horizontal menu item field. The parameter value is displayed for the user as the cursor moves. For example, if, from a menu of fonts, the user put the cursor over the xe2x80x9cCourierxe2x80x9d menu item, then moving the cursor left to right would increase the font size within a predetermined range of values and vice versa for the selected text.
Typically, the menus discussed above are opaque. As such, they tend to obstruct the underlying window or document, again see FIG. 2. This creates screen clutter and reduces user efficiency, largely due to the uncertainty of modifying an entity, which you can not fully see because it is obstructed by the menu. Erroneous modifications further decrease efficiency by creating rework and causing reselection of the menu to fix the error. In fact, this problem gave rise to the tear-off and pop-up menus, which could be moved so as to minimize obstruction or at least give the user the choice in where the unavoidable obstruction would occur. However, these movable menus usually can not be moved such that the document is fully visible to the user, unless the document window itself is shrunk down to reduce the overlap with the menu. Minimizing the size of the document is not desirable as it reveals less of the information in the window. Many systems also allow menus with multiple levels, i.e. nested, to be cascaded, thereby minimizing the obstruction of the underlying window. Cascading allows the menus to partially overlap each other to cut down on the overlap with the underlying window. However, the obstruction persists and is greater than if just one menu were selected.
Another attempt to resolve the obstruction problem is partially transparent linear menus, disclosed in U.S. Pat. No. 5,283,560 (""560) to Bartlett. In the ""560 patent, partially transparent linear pull-down and tear-off menus are disclosed. The partial transparency is achieved by reducing the number of menu pixels illuminated on the screen where the menu overlaps with the underlying window. While this compromises the clarity of the window document itself in the area of the overlap, as well as the clarity of the menu, it is, nonetheless, an improvement over opaque menus. The size of the menu is completely dependent on the number of items in the menu and is not adjustable, so that the area of overlap between the menu and the document can not be minimized to improve the clarity of the document in the affected area.
In an effort to increase the user""s speed of operation and reduce screen clutter, other implementations of controls and menus have been experimented with, but are not in widespread use. For example, a menu, such as a pie menu, can be xe2x80x9cself-revealingxe2x80x9d. A self-revealing menu is one which, when selected, does not show itself immediately. The concept is that once a user gets used to seeing any given icon or menu appear in the same place repeatedly, the user may become familiar enough with its position on the screen so that the user need not actually see the menu or icon to make correct selections from or of it. Selecting from a menu in this manner is referred to as xe2x80x9cmarking aheadxe2x80x9d. This combination of marking ahead and self-revealing menus saves a proficient user""s time and relieves the computer""s processor from having to xe2x80x9cpaintxe2x80x9d the menu on the screen, which allows the computer to operate a bit faster. However, this approach can provide benefit for only a small subset of cases, because it is not likely that users will remember more than a few of the menu items and their respective screen positions, leaving the user to wait for the computer to reveal, or paint, the actual menu in most instances. Waiting for the menu to get painted, with the inherent delay of this approach, actually decreases the user""s overall efficiency.
A need exists for a GUI with minimal obstruction of an underlying window from operator controllable devices. A need exists to minimize the obstruction that menus or other operator controllable devices provide by controlling their transparency and size. A need also exists for operator controllable menus, which provide increased speed and accuracy over standard linear menus and are responsive to the operator""s desire to control the speed of operation or property value selection. Furthermore, a need exists for menus, which allow increased accuracy and speed by a user who is interacting with or controlling not only a property or operation, but simultaneously the value of the property or operation.
The present invention provides a method and apparatus for an improved graphical user interface for a desktop computer. Screen clutter is reduced and operator efficiency increased through the implementation of improved visual control device on a computer display. According to the illustrative embodiment, the graphical control device is implemented as one or more xe2x80x9crollerballsxe2x80x9d having a border defining an active central region. The speed with which the selected value scrolls is dependent upon the active region of the rollerball currently selected. The rollerball device has an active region characterized by a peripheral border surrounding a central interior region. Values associated with the data entity may be scrolled through at a rate, which increases nonlinearly as the selected portion of the active region progresses from the central interior region toward the peripheral border.
A group of xe2x80x9crollerballsxe2x80x9d may be used to represent a set of operations, or a set of menus. A group of rollerballs, which can also be used to represent a given object""s properties, is arranged in a spiral configuration to form a compact and easy to navigate set of choices for the user. When the rollerballs are not being used, they may be semi-transparent, or low opacity, which minimizes the obstruction to the underlying window. When the rollerballs are activated, the rollerball which is being hovered over, or preselected, increases in size. The preselected rollerball also becomes completely opaque and the rollerballs adjacent to increase in opacity.
According to one aspect of the invention, a computer program product for use with a computer system having a display apparatus, a graphic user interface and an input device comprises a computer usable medium having computer readable program code thereon for creating a control device to enable selection and control of a data entity, the control device having at least one operational state and a plurality of visual characteristics. The computer readable program code comprises program code for maintaining the operational state of the device, program code for generating a graphical display of the device, program code for defining an active region of the graphic display, program code for displaying a value associated with a data entity to which the device relates, and program code for selectively scrolling through displayed values of the data entity at a rate which varies in response to the portion of the active region selected.
According to one embodiment, the program code for selectively scrolling display values of the associated data entity at a rate which increases nonlinearly as a selected portion of the active region progresses from the central interior region towards the peripheral border. According to another embodiment, the program code for generating the graphic display comprises program code for selectively changing the opacity of the control device in relation to changes in the operational state of the control device. In yet another embodiment, the program code for generating a graphic display comprises program code for modifying the size of the control device in response to changes in the operational state of the control device. In yet another embodiment, program code is provided for creating a group of control devices selected of the control devices each representing a different data entity and program code for arranging the group of control devices in accordance with a predetermined criteria, such as the frequency of user-selection.
According to a second aspect of the invention, in a computer system having a display device with a graphic user interface and an input device, a graphic control device for selecting and controlling user selectable parameters comprises program logic for displaying the control device, program logic for displaying a value related to the parameter associated with the control device, program logic for defining an active region of the control device and enabling selection of the active region, each portion of the active region having associated therewith a scrolling rate and program logic for modifying the visual characteristics of the control device in response to changes in the operational state of the control device.
According to a third aspect of the invention, in a computer system having a display device with a graphic user interface and an input device, a method for selecting and controlling user selectable parameters with a graphic control device comprises generating and displaying the control device, displaying a value related to the parameter associated with the control device, defining an active region of the control device and enabling selection of the active region, each portion of the active region having associated therewith a scrolling rate and modifying the visual characteristics of the control device in response to changes in the operational state of the control device.